﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

using SOAPServices.Persistencia;
using SOAPServices.Dominio;
namespace SOAPServices
{
     public class Pacientes : IPacientes
    {
        private PacienteDAO pacienteDAO = null;
        private PacienteDAO PacienteDAO
        {
            get
            {
                if (pacienteDAO == null)
                    pacienteDAO = new PacienteDAO();
                return pacienteDAO;
            }
        }

        private ClienteDAO clienteDAO = null;
        private ClienteDAO ClienteDAO
        {
            get
            {
                if (clienteDAO == null)
                    clienteDAO = new ClienteDAO();
                return clienteDAO;
            }
        }

        public Paciente CrearPaciente(int idCliente, string NombreMascota)
        {
            try
            {
                Cliente c = ClienteDAO.Obtener(idCliente);
                Paciente v = new Paciente()
                {
                    Cliente = c,
                    txtPaciente = NombreMascota
                };
                return PacienteDAO.Crear(v);
            }

            catch (FaultException ex)
            {
                throw ex;
            }
        }
        public Paciente ObtenerPaciente(int codigo)
        {
            return PacienteDAO.Obtener(codigo);
        }


        public Paciente ModificarPaciente(int IdPaciente, int idCliente, string NombreMascota) {
            try
            {
                Cliente c = ClienteDAO.Obtener(idCliente);
                Paciente v = new Paciente()
                {
                    IdPaciente = IdPaciente,
                    Cliente = c,
                    txtPaciente = NombreMascota
                };
                return PacienteDAO.Modificar(v);
            }
            catch (FaultException ex)
            {
                throw ex;
            }
        
        }

        public void EliminarPaciente(int IdPaciente) {
            Paciente v = PacienteDAO.Obtener(IdPaciente);
            PacienteDAO.Eliminar(v);
        }

        public List<Paciente> ListarPaciente() {
            return PacienteDAO.ListarTodos().ToList();
        }
    }
}
